﻿using System.Collections.Generic;
using Neturion.Dados;
using Neturion.IRepositorios;
using Neturion.Repositorios;

namespace Neturion.Negocios
{
    public class NegocioContaContabil
    {
        private IRepositorioContaContabil _repositorioContaContabil;

        public NegocioContaContabil()
        {
            _repositorioContaContabil = new RepositorioContaContabil();
        }

        public ContaContabil Inserir(ContaContabil contaContabil, Usuario usuarioPermissao)
        {
            return _repositorioContaContabil.Inserir(contaContabil);
        }

        public ContaContabil Atualizar(ContaContabil contaContabil, Usuario usuarioPermissao)
        {
            return _repositorioContaContabil.Atualizar(contaContabil);
        }

        public void Excluir(ContaContabil contaContabil, Usuario usuarioPermissao)
        {
            ContaContabil contaContabilTmp = ObterPorId(contaContabil.ContaContabilId, usuarioPermissao);
            _repositorioContaContabil.Excluir(contaContabilTmp);
        }

        public IList<ContaContabil> ObterTodos(Usuario usuarioPermissao)
        {
            return _repositorioContaContabil.ObterTodos();
        }

        public IList<ContaContabil> ObterTodos(int inicio, int quantidade, int quantidadeMinima, Usuario usuarioPermissao, string codigo, string descricao,
                                        EnumTipoConta? enumTipoConta, EnumTipoOperacionalidade? enumTipoOperacionalidade, TipoContaContabil tipoContaContabil)
        {
            return _repositorioContaContabil.ObterTodos(inicio, quantidade, quantidadeMinima, codigo, descricao, enumTipoConta, enumTipoOperacionalidade, tipoContaContabil);
        }

        public ContaContabil ObterPorId(int id, Usuario usuarioPermissao)
        {
            return _repositorioContaContabil.ObterPorId(id);
        }

        public ContaContabil ObterPorCodigo(string codigo, Usuario usuarioPermissao)
        {
            return _repositorioContaContabil.ObterPorCodigo(codigo);
        }
    }
}